package business.produto;

import java.util.Date;
import java.util.HashSet;
import java.util.Set;
import business.sistema.ObjetoSistema;

public class Produto extends ObjetoSistema 
{
	private static final long serialVersionUID = 4488341998522516987L;
	private int codigo;
	private String nome;
	private double valor;
	private Set<Imagem> imagens;
	private Fabricante fabricante;
	private Empresa empresa;
	private Set<ProdutoFonetica> produtoFoneticas;
	private Date dataUltimaPesquisa;
	
	public int getCodigo()
	{
		return codigo;
	}
	
	public void setCodigo(int codigo)
	{
		this.codigo = codigo;
	}
	
	public String getNome()
	{
		return nome;
	}
	
	public void setNome(String nome)
	{
		this.nome = nome;
	}
	
	public double getValor()
	{
		return valor;
	}
	
	public void setValor(double valor)
	{
		this.valor = valor;
	}
	
	public Set<Imagem> getImagens()
	{
		return imagens;
	}
	
	public void setImagens(Set<Imagem> imagens)
	{
		this.imagens = imagens;
	}
	
	public void addImagem(Imagem imagem)
	{
		if(imagens == null)
		{
			imagens = new HashSet<Imagem>();
		}
		
		imagens.add(imagem);
		imagem.setProduto(this);
	}
	
	public void removerImagem(Imagem imagem)
	{
		if(imagem != null && imagens != null)
		{
			imagens.remove(imagem);
		}
	}
	
	public Fabricante getFabricante()
	{
		return fabricante;
	}
	
	public void setFabricante(Fabricante fabricante)
	{
		this.fabricante = fabricante;
	}
	
	public String getNomeFabricante()
	{
		return getFabricante().getNome();
	}
	
	public Empresa getEmpresa()
	{
		return empresa;
	}
	
	public void setEmpresa(Empresa empresa)
	{
		this.empresa = empresa;
	}
	
	public String getNomeEmpresa()
	{
		return empresa.getNome();
	}
	
	public String getImagemCorrente()
	{
		String imagemReal = "//imagens//imagem_nao_disponivel.png";
		
		if(imagens != null)
		{
			for(Imagem imagem : imagens)
			{
				imagemReal = "//imagens_produtos//" + imagem.getImagem();
				break;
			}
		}
		
		return imagemReal;
	}

	public void setProdutoFoneticas(Set<ProdutoFonetica> produtoFoneticas)
	{
		this.produtoFoneticas = produtoFoneticas;
	}

	public Set<ProdutoFonetica> getProdutoFoneticas()
	{
		return produtoFoneticas;
	}

	public void setDataUltimaPesquisa(Date dataUltimaPesquisa)
	{
		this.dataUltimaPesquisa = dataUltimaPesquisa;
	}

	public Date getDataUltimaPesquisa()
	{
		return dataUltimaPesquisa;
	}
}
